package curd

import (
	"fmt"
	"gctl/internal/curd/logic"

	"github.com/spf13/cobra"
)

type Param struct {
	App  string
	Srv  string
	Path string
}

func CurdRoute(cmd *cobra.Command, args []string) {
	//项目类型
	appTtype, err := cmd.Flags().GetString("appType")
	if err != nil {
		fmt.Println(err)
		return
	}
	curd, err := cmd.Flags().GetString("curd")

	//项目名称
	app, err := cmd.Flags().GetString("appName")
	if err != nil {
		fmt.Println(err)
		return
	}
	//根据不同的项目类型生成不同的项目目录结构
	switch appTtype {
	case "web":
		//web项目
		//默认生成web项目的curd
		switch curd {
		case "c": //c层curd
			logic.WebLogicCreate()
		case "u": //u层curd
			logic.WebLogicUpdate()
		case "r": //m层curd
			logic.WebLogicQuery()
		case "d": //d层curd
			logic.WebLogicDelete()
		default:
			logic.WebLogicCurd()
			return
		}

	case "api":
		//api项目
		apiInit(app)
	case "cli":
		//cli项目
		cliInit(app)
	case "srv":
		//srv项目
		srvInit(app)
	default:
		//其他项目
		fmt.Println("暂不支持该项目类型")
		return
	}
}
